home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / sun / awt / windows / WComponentPeer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  6.6 KB  |  340 lines

  1. package sun.awt.windows;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dimension;
  7. import java.awt.Event;
  8. import java.awt.Font;
  9. import java.awt.FontMetrics;
  10. import java.awt.Graphics;
  11. import java.awt.Image;
  12. import java.awt.Rectangle;
  13. import java.awt.Toolkit;
  14. import java.awt.image.ColorModel;
  15. import java.awt.image.ImageObserver;
  16. import java.awt.image.ImageProducer;
  17. import java.awt.peer.ComponentPeer;
  18. import sun.awt.DrawingSurface;
  19. import sun.awt.DrawingSurfaceInfo;
  20. import sun.awt.ObjectPeer;
  21. import sun.awt.ScreenUpdater;
  22. import sun.awt.UpdateClient;
  23.  
  24. public abstract class WComponentPeer extends ObjectPeer implements ComponentPeer, UpdateClient, DrawingSurface {
  25.    private int updateX1;
  26.    private int updateY1;
  27.    private int updateX2;
  28.    private int updateY2;
  29.    Component target;
  30.    int pNativeWidget;
  31.    int pWinMsg;
  32.  
  33.    WComponentPeer(Component var1) {
  34.       this.target = var1;
  35.       Container var2 = var1.getParent();
  36.       this.create((WComponentPeer)(var2 != null ? ((Component)var2).getPeer() : null));
  37.       this.initialize();
  38.    }
  39.  
  40.    protected void finalize() {
  41.       if (this.pNativeWidget != 0) {
  42.          this.dispose();
  43.       }
  44.  
  45.    }
  46.  
  47.    abstract void create(WComponentPeer var1);
  48.  
  49.    public void dispose() {
  50.       this.dispose0();
  51.       super.dispose();
  52.    }
  53.  
  54.    public synchronized native void dispose0();
  55.  
  56.    public native void show();
  57.  
  58.    public native void hide();
  59.  
  60.    public native void enable();
  61.  
  62.    public native void disable();
  63.  
  64.    public native void setForeground(Color var1);
  65.  
  66.    public native void setBackground(Color var1);
  67.  
  68.    public native void setFont(Font var1);
  69.  
  70.    public synchronized native void requestFocus();
  71.  
  72.    public native void nextFocus();
  73.  
  74.    public native void reshape(int var1, int var2, int var3, int var4);
  75.  
  76.    public synchronized native boolean handleEvent(Event var1);
  77.  
  78.    public Dimension minimumSize() {
  79.       return this.target.size();
  80.    }
  81.  
  82.    public Dimension preferredSize() {
  83.       return this.minimumSize();
  84.    }
  85.  
  86.    public ColorModel getColorModel() {
  87.       return WToolkit.getStaticColorModel();
  88.    }
  89.  
  90.    public Toolkit getToolkit() {
  91.       return Toolkit.getDefaultToolkit();
  92.    }
  93.  
  94.    public Graphics getGraphics() {
  95.       WGraphics var1 = new WGraphics(this);
  96.       ((Graphics)var1).setColor(this.target.getForeground());
  97.       ((Graphics)var1).setFont(this.target.getFont());
  98.       return var1;
  99.    }
  100.  
  101.    public FontMetrics getFontMetrics(Font var1) {
  102.       return WFontMetrics.getFontMetrics(var1);
  103.    }
  104.  
  105.    public void repaint(long var1, int var3, int var4, int var5, int var6) {
  106.       this.addRepaintArea(var3, var4, var5, var6);
  107.       ScreenUpdater.updater.notify(this, var1);
  108.    }
  109.  
  110.    public void paint(Graphics var1) {
  111.       var1.setColor(this.target.getForeground());
  112.       var1.setFont(this.target.getFont());
  113.       this.target.paint(var1);
  114.    }
  115.  
  116.    public void update(Graphics var1) {
  117.       var1.setColor(this.target.getForeground());
  118.       var1.setFont(this.target.getFont());
  119.       this.target.update(var1);
  120.    }
  121.  
  122.    public void print(Graphics var1) {
  123.       Dimension var2 = this.target.size();
  124.       var1.setColor(this.target.getForeground());
  125.       var1.setFont(this.target.getFont());
  126.       var1.drawRect(0, 0, var2.width - 1, var2.height - 1);
  127.       this.target.print(var1);
  128.    }
  129.  
  130.    public Image createImage(ImageProducer var1) {
  131.       return new WImage(var1);
  132.    }
  133.  
  134.    public Image createImage(int var1, int var2) {
  135.       return new WImage(var1, var2);
  136.    }
  137.  
  138.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  139.       return WToolkit.prepareScrImage(var1, var2, var3, var4);
  140.    }
  141.  
  142.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  143.       return WToolkit.checkScrImage(var1, var2, var3, var4);
  144.    }
  145.  
  146.    public int updatePriority() {
  147.       return 5;
  148.    }
  149.  
  150.    public void updateClient(Object var1) {
  151.       synchronized(this){}
  152.  
  153.       int var2;
  154.       int var3;
  155.       int var4;
  156.       int var5;
  157.       try {
  158.          var2 = this.updateX1;
  159.          var3 = this.updateY1;
  160.          var4 = this.updateX2;
  161.          var5 = this.updateY2;
  162.          this.updateX1 = this.updateX2;
  163.       } catch (Throwable var8) {
  164.          throw var8;
  165.       }
  166.  
  167.       if (var2 != var4) {
  168.          this.widget_repaint(var2, var3, var4 - var2, var5 - var3);
  169.       }
  170.  
  171.    }
  172.  
  173.    protected native void widget_repaint(int var1, int var2, int var3, int var4);
  174.  
  175.    void initialize() {
  176.       if (this.target.isVisible()) {
  177.          this.show();
  178.       } else {
  179.          this.hide();
  180.       }
  181.  
  182.       Color var1;
  183.       if ((var1 = this.target.getForeground()) != null) {
  184.          this.setForeground(var1);
  185.       }
  186.  
  187.       Font var2;
  188.       if ((var2 = this.target.getFont()) != null) {
  189.          this.setFont(var2);
  190.       }
  191.  
  192.       if (!this.target.isEnabled()) {
  193.          this.disable();
  194.       }
  195.  
  196.       Rectangle var3 = this.target.bounds();
  197.       this.reshape(var3.x, var3.y, var3.width, var3.height);
  198.    }
  199.  
  200.    private synchronized void addRepaintArea(int var1, int var2, int var3, int var4) {
  201.       if (this.updateX1 == this.updateX2) {
  202.          this.updateX1 = var1;
  203.          this.updateY1 = var2;
  204.          this.updateX2 = var1 + var3;
  205.          this.updateY2 = var2 + var4;
  206.       } else {
  207.          if (var1 < this.updateX1) {
  208.             this.updateX1 = var1;
  209.          }
  210.  
  211.          if (var2 < this.updateY1) {
  212.             this.updateY1 = var2;
  213.          }
  214.  
  215.          if (var1 + var3 > this.updateX2) {
  216.             this.updateX2 = var1 + var3;
  217.          }
  218.  
  219.          if (var2 + var4 > this.updateY2) {
  220.             this.updateY2 = var2 + var4;
  221.          }
  222.  
  223.       }
  224.    }
  225.  
  226.    public String toString() {
  227.       return this.getClass().getName() + "[" + this.target + "]";
  228.    }
  229.  
  230.    private native Event setData(int var1, Event var2);
  231.  
  232.    protected void handleQuit(long var1) {
  233.       Event var3 = new Event(this.target, 201, (Object)null);
  234.       this.target.postEvent(var3);
  235.    }
  236.  
  237.    protected void handleMoved(long var1, int var3, int var4, int var5) {
  238.    }
  239.  
  240.    protected void handleResize(long var1, int var3, int var4, int var5, int var6, int var7) {
  241.    }
  242.  
  243.    protected void handleGotFocus(long var1, int var3, int var4, int var5, int var6, int var7) {
  244.       Event var8 = this.setData(var3, new Event(this.target, 1004, (Object)null));
  245.       this.target.postEvent(var8);
  246.    }
  247.  
  248.    protected void handleLostFocus(long var1, int var3, int var4, int var5, int var6, int var7) {
  249.       Event var8 = this.setData(var3, new Event(this.target, 1005, (Object)null));
  250.       this.target.postEvent(var8);
  251.    }
  252.  
  253.    protected void handleActionKey(long var1, int var3, int var4, int var5, int var6, int var7) {
  254.       Event var8 = this.setData(var3, new Event(this.target, var1, 403, var4, var5, var6, var7));
  255.       this.target.postEvent(var8);
  256.    }
  257.  
  258.    protected void handleActionKeyRelease(long var1, int var3, int var4, int var5, int var6, int var7) {
  259.       Event var8 = this.setData(var3, new Event(this.target, var1, 404, var4, var5, var6, var7));
  260.       this.target.postEvent(var8);
  261.    }
  262.  
  263.    protected void handleKeyPress(long var1, int var3, int var4, int var5, int var6, int var7) {
  264.       Event var8 = this.setData(var3, new Event(this.target, var1, 401, var4, var5, var6, var7));
  265.       this.target.postEvent(var8);
  266.    }
  267.  
  268.    protected void handleKeyRelease(long var1, int var3, int var4, int var5, int var6, int var7) {
  269.       Event var8 = this.setData(var3, new Event(this.target, var1, 402, var4, var5, var6, var7));
  270.       this.target.postEvent(var8);
  271.    }
  272.  
  273.    protected void handleMouseEnter(long var1, int var3, int var4, int var5) {
  274.       Event var6 = new Event(this.target, var1, 504, var4, var5, 0, 0, (Object)null);
  275.       this.target.postEvent(var6);
  276.    }
  277.  
  278.    protected void handleMouseExit(long var1, int var3, int var4, int var5) {
  279.       Event var6 = new Event(this.target, var1, 505, var4, var5, 0, 0, (Object)null);
  280.       this.target.postEvent(var6);
  281.    }
  282.  
  283.    protected void handleMouseDown(long var1, int var3, int var4, int var5, int var6, int var7) {
  284.       Event var8 = this.setData(var3, new Event(this.target, var1, 501, var4, var5, 0, var7, (Object)null));
  285.       var8.clickCount = var6;
  286.       this.target.postEvent(var8);
  287.    }
  288.  
  289.    protected void handleMouseUp(long var1, int var3, int var4, int var5, int var6, int var7) {
  290.       Event var8 = this.setData(var3, new Event(this.target, var1, 502, var4, var5, 0, var7, (Object)null));
  291.       this.target.postEvent(var8);
  292.    }
  293.  
  294.    protected void handleMouseMoved(long var1, int var3, int var4, int var5, int var6) {
  295.       Event var7 = this.setData(var3, new Event(this.target, var1, 503, var4, var5, 0, var6, (Object)null));
  296.       this.target.postEvent(var7);
  297.    }
  298.  
  299.    protected void handleMouseDrag(long var1, int var3, int var4, int var5, int var6) {
  300.       Event var7 = this.setData(var3, new Event(this.target, var1, 506, var4, var5, 0, var6, (Object)null));
  301.       this.target.postEvent(var7);
  302.    }
  303.  
  304.    protected void handleExpose(long var1, int var3, int var4, int var5, int var6, int var7) {
  305.       Object var8 = null;
  306.       Graphics var9 = this.getGraphics();
  307.       var9.clipRect(var4, var5, var6, var7);
  308.       this.paint(var9);
  309.       var9.dispose();
  310.    }
  311.  
  312.    protected void handleRepaint(long var1, int var3, int var4, int var5, int var6, int var7) {
  313.       Object var8 = null;
  314.       Graphics var9 = this.getGraphics();
  315.       var9.clipRect(var4, var5, var6, var7);
  316.       this.update(var9);
  317.       var9.dispose();
  318.    }
  319.  
  320.    protected void nativeDragEnter(long var1, int var3, int var4, int var5, int var6, int var7) {
  321.       System.out.println("nativeDragEnter:\n\tX: " + var4 + "\n\tY: " + var5 + "\n\tpData: " + var6 + "\n\tkeyState: " + var7);
  322.    }
  323.  
  324.    protected void nativeDragOver(long var1, int var3, int var4, int var5, int var6) {
  325.       System.out.println("nativeDragOver:\n\tX: " + var4 + "\n\tY: " + var5 + "\n\tkeyState: " + var6);
  326.    }
  327.  
  328.    protected void nativeDragLeave(long var1, int var3) {
  329.       System.out.println("nativeDragLeave:");
  330.    }
  331.  
  332.    protected void nativeDragDrop(long var1, int var3, int var4, int var5, int var6, int var7) {
  333.       System.out.println("nativeDragEnter:\n\tX: " + var4 + "\n\tY: " + var5 + "\n\tpData: " + var6 + "\n\tkeyState: " + var7);
  334.    }
  335.  
  336.    public DrawingSurfaceInfo getDrawingSurfaceInfo() {
  337.       return new WDrawingSurfaceInfo(this);
  338.    }
  339. }
  340.